package com.cti.ftpservice.dao;

import java.util.List;

import com.cti.ftpservice.model.onix.FtpFileInfo;
import com.cti.ftpservice.vo.PageViewVO;
import com.cti.ftpservice.vo.ParameterVo;


/**
 * ftp服务器下载文件类
 */
public interface FtpFileDao {
 /**
  * 添加ftp下载文件
  * @param ftpFileInfo
  */
  public void addFtpFile(FtpFileInfo ftpFileInfo);
  /**
   * 删除Ftp文件
   * @param ftpFileId
   */
  public void deleteFtpFile(FtpFileInfo ftpFileInfo);
  /**
   * 更新ftp下载文件信息
   * @param ftpFileInfo
   */
  public void addOrUpdateFtpFileInfo(FtpFileInfo ftpFileInfo);
 
  /**
   * 根据ID获取Ftp文件
   * @param ftpFileId
   * @return
   */
  public FtpFileInfo getFileInfoById(String ftpFileId);
  /**
   * 根据审读结果获取ftp下载文件
   * @param approvedByHuman true false null:获取所有Ftp文件
   * @return
   */
  public List<FtpFileInfo> getFtpFileInfosByApprovedHuman(Boolean approvedByHuman);
  /**
   * 根据ftp服务器ID、审读结果获取ftp文件
   * @param ftpServiceId
   * @param approvedByHuman
   * @return
   */
  public List<FtpFileInfo> getFtpFileInfosByFtpServiceIdAndApprovedHuman(String ftpServiceId,Boolean approvedByHuman);
  /**
   * 根据查询条件获取Ftp文件
   */
   public PageViewVO<FtpFileInfo> getFtpFileInfoViewVoByParams(ParameterVo[] paramVos,int pageIndex,int pageSize);
	
	/**
	 * 根据Ftp服务器Id、下载路劲获取已下载文件信息
	 * @param ftpServiceId
	 * @param downloadPath
	 * @return
	 */
	public List<FtpFileInfo> getFtpDownloadFileViewVoByFtpServiceIdAndDownloadPath( String downloadPath);
	/**
	 * 获取Ftp下载文件的后缀名
	 * @return
	 */
	public List<String> getFtpFileInfoExtensions();
	
	/**
	 * 根据本地文件存储路径查找记录
	 * @param localFtpFilePath
	 * @return
	 */
	public FtpFileInfo getFileInfoBylocalFtpFilePath(String localFtpFilePath);
	
	
	public List<FtpFileInfo> getUnDealFileInfosByFileType(String fileType);
	
	public void clearSession();
	
	public FtpFileInfo getFileInfoByFileName(String fileName);
}
